﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using nvn.Core.MVP;
using nvn.Library.Patterns;
using Hutech.CRM.Library.Models.Entities;

namespace Hutech.CRM.Library.Models.BusinessAccessLayer.BusinessObjects
{
    public interface IAccountCustomerBAL : IBaseBAL
    {
        bool Save(AccountCustomer item);
        bool Delete(Guid accountCustomerGuid);

        /// <summary>
        /// Check data exist by item guid
        /// </summary>
        /// <param name="itemGuid"></param>
        /// <returns></returns>
        bool CheckExist(Guid itemGuid);
        List<AccountCustomer> GetAll();
        List<AccountCustomer> GetPage(int PageNumber, int PageSize, out int totalPages);

        /// <summary>
        /// Get data for search
        /// </summary>
        /// <param name="kindSearch"></param>
        /// <param name="keySearch"></param>
        /// <param name="Job"></param>
        /// <param name="Position"></param>
        /// <param name="Province"></param>
        /// <param name="Level"></param>
        /// <param name="PageNumber"></param>
        /// <param name="PageSize"></param>
        /// <param name="totalPages"></param>
        /// <returns></returns>
        List<AccountCustomer> GetPageForSearch(
            string kindSearch,
            string keySearch,
            Guid Job,
            Guid Position,
            Guid Province,
            Guid Level,
            int PageNumber, int PageSize, out int totalPages);
    }
}
